chore(deps): cryptography 48 + 3 patches; cap protobuf<7 and starlette<1 (consolidates #34/#58/#61/#62; defers #59/#60)#63
Merged
Conversation
Bumps [pydantic-settings](https://github.com/pydantic/pydantic-settings) from 2.14.0 to 2.14.1. - [Release notes](https://github.com/pydantic/pydantic-settings/releases) - [Commits](pydantic/pydantic-settings@v2.14.0...v2.14.1) --- updated-dependencies: - dependency-name: pydantic-settings dependency-version: 2.14.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [python-multipart](https://github.com/Kludex/python-multipart) from 0.0.27 to 0.0.29. - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md) - [Commits](Kludex/python-multipart@0.0.27...0.0.29) --- updated-dependencies: - dependency-name: python-multipart dependency-version: 0.0.29 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 94527f2e458b27549849d47d273a16bec83a01e9 to 37802adc94f370d6bfd71619e3f0bf239e1f3b78. - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](astral-sh/setup-uv@94527f2...37802ad) --- updated-dependencies: - dependency-name: astral-sh/setup-uv dependency-version: 37802adc94f370d6bfd71619e3f0bf239e1f3b78 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.7 to 48.0.0. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](pyca/cryptography@46.0.7...48.0.0) --- updated-dependencies: - dependency-name: cryptography dependency-version: 48.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [starlette](https://github.com/Kludex/starlette) from 0.52.1 to 1.0.0. - [Release notes](https://github.com/Kludex/starlette/releases) - [Changelog](https://github.com/Kludex/starlette/blob/main/docs/release-notes.md) - [Commits](Kludex/starlette@0.52.1...1.0.0) --- updated-dependencies: - dependency-name: starlette dependency-version: 1.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 6.33.6 to 7.34.1. - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Commits](https://github.com/protocolbuffers/protobuf/commits) --- updated-dependencies: - dependency-name: protobuf dependency-version: 7.34.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
This reverts commit eb11a0c.
…h protobuf 7 Dependabot proposed protobuf 6.33.6 → 7.34.1 in #60, but databricks-sdk 0.106.0 transitively requires protobuf<7.0. The bump broke `pip install -r requirements.txt` with a resolver conflict. Adds an explicit ceiling matching the existing importlib-metadata<8.8 pattern so dependabot stops re-proposing the bump until databricks-sdk lifts its cap.
This reverts commit 9f7d85b.
mlflow-skinny 3.12.0 declares starlette<1 in its requirements. The dependabot bump in #59 only worked with 'uv pip sync requirements.txt' which is permissive; the canonical 'uv pip compile pyproject.toml' was silently reverting the pin to 0.52.1. Adds an explicit ceiling matching the existing protobuf<7 and importlib-metadata<8.8 patterns so dependabot stops re-proposing the bump until mlflow-skinny lifts its <1 cap. Also regenerates requirements.txt from pyproject so the file is fully consistent — adds 'coda (pyproject.toml)' to the via lists of protobuf and starlette, reflecting the new explicit constraints.
Marks the dependency-bump consolidation (PR #63): - cryptography 46.0.7 -> 48.0.0 - python-multipart 0.0.27 -> 0.0.29 - pydantic-settings 2.14.0 -> 2.14.1 (transitive) - astral-sh/setup-uv action SHA pin - protobuf<7 ceiling (blocks dependabot until databricks-sdk lifts cap) - starlette<1 ceiling (blocks dependabot until mlflow-skinny lifts cap) app.py auto-reads APP_VERSION from pyproject.toml at startup, so no other file needs editing.
This was referenced May 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Consolidates open dependabot PRs into one verified bump. Each lands as its own commit (cherry-picked from the original dependabot branches with authorship preserved) so any single bump can be reverted independently if a regression surfaces.
Bumps in this PR (4 successful)
pyproject.tomlfloors raised:cryptography>=48.0.0,python-multipart>=0.0.29.Deferred (2 dependabot proposals are poison pills)
Two dependabot PRs proposed major bumps that conflict with our own pinned Databricks deps. Both are cherry-picked → reverted → ceiling-capped in
pyproject.toml, so dependabot stops re-proposing them until the upstream caps lift.databricks-sdk==0.106.0declaresprotobuf!=5.26.*,...,<7.0,>=4.25.8. The bump erroredpip install -r requirements.txtwith a resolver conflict.mlflow-skinny==3.12.0declaresstarlette<1. The pin "worked" withuv pip sync(which trusts the file) but the canonicaluv pip compile pyproject.tomlsilently reverted it. Confirmed via--verboseresolver trace.New ceilings added to
pyproject.toml(matching the existingimportlib-metadata<8.8pattern):"protobuf<7""starlette<1"Each carries an inline comment explaining the transitive cap, the dependabot PR number, and what would unblock re-proposing the bump.
Both PRs stay open for visibility (manual close with a "blocked on upstream cap" comment is the suggested follow-up).
Verification (local)
Per-commit, with each bump installed via
uv pip sync requirements.txt:pat_rotator,content_filter_proxy,cli_authimport + smoke OKstarlette 1.0.0mlflow-skinny<1capprotobuf 7.34.1databricks-sdk<7capprotobuf<7ceiling + regenstarlette<1ceiling + regenFinal state:
requirements.txtis fully consistent withpyproject.toml— verified byuv pip compile pyproject.toml -o requirements.txtproducing no diff against the committed file. All 3 effective bumps (cryptography, python-multipart, pydantic-settings) report their new versions in the venv; fullsetup_*.pyset AST-parses;app,pat_rotator,content_filter_proxy,cli_auth,telemetry,app_state,utilsall import.Tests deselected from the regression run (out-of-scope for dependency bumps):
tests/test_gateway_discovery.py::TestEndpointConstruction::*— invokessetup_claude.pyas a subprocess; hangs on the Claude Code curl installer in some environments (timeout-bound; affects local dev but not CI).tests/test_npm_version_pinning.py::TestNpmVersionLive::test_resolves_real_package— documented live-network flake, pre-existing baseline.Why one PR
Each of the dependabot PRs touched
requirements.txt, so they conflict pairwise on merge — a multi-round dependabot rebase cycle every time one merges. Folding them into one verified branch gives the existingupdate-lockfile.ymlworkflow exactly one push to regeneraterequirements.lockagainst.requirements.lockis not updated in this PR — the existing GitHub Actions workflow (.github/workflows/update-lockfile.yml) will regenerate it on merge tomain.Risk register
importlib-metadata<8.8ceiling conflictuv pip syncresolved cleanly each stepTest plan
uv pip compile pyproject.toml -o requirements.txtproduces no diff (file is canonical)requirements.lockpost-merge (handled byupdate-lockfile.yml)Closes #34
Closes #58
Closes #61
Closes #62